#include <iostream>

//优先调用普通函数
//显式调用用模板函数

//普通函数支持隐式转换
//模板函数的类型必须严格匹配
// template <typename T>
// T add(T a, T b)
// {
//     std::cout << "模板函数!\n";
//     return a + b;
// }

template <typename T,typename T2>
T add(T a, T2 b)
{
    std::cout << "模板函数!\n";
    return a + b;
}


// int add(int a,int b)
// {
//     std::cout << "普通函数!\n";
//     return a + b;
// }

int main()
{
    // int c = add(1,2);
    // int c = add<int>(1,2);
    int c = add(1,'a');
    return 0;
}